package gestion_bd;

import java.sql.ResultSet;
import java.sql.SQLException;

/*
1) seleccionar todas las sesiones con sus fechas
input: -
SELECT id, fecha FROM sesiones;
 
2) seleccionar para una sesion dada, los clientes 
input: VAR_ID_SESION
SELECT nombre, apellido FROM clientes JOIN clientes_por_sesion ON clave_publica=id_cliente WHERE id_sesion= VAR_ID_SESION;

3) seleccionar para una sesion dada los temas
input: VAR_ID_SESION
SELECT tema FROM temas JOIN temas_por_sesion ON id=id_tema WHERE id_sesion=VAR_ID_SESION;

4) seleccionar para una sesion y para un tema, los resultados 
input: VAR_ID_SESION, VAR_ID_TEMA (tiene que saber el id del tema)
SELECT resultado FROM resultados WHERE id_sesion=VAR_ID_SESION AND id_tema=ID_TEMA;

5) dado un tema, sesion y cliente decir su voto 
input: VAR_ID_SESION, VAR_ID_TEMA, VAR_ID_CLIENTE
SELECT voto FROM votos_por_tema WHERE id_sesion=VAR_ID_SESION AND id_tema=VAR_ID_TEMA AND id_cliente=VAR_ID_CLIENTE;

6) seleccionar por sesion y por cliente, su rol (esta ultima la dijimos pero en realidad dado que cada cliente tiene un rol fijo que no varia por sesion estaria bien?)
 */

public class Consultas {
	private static final String USR ="root";
	private static final String PASS = "";
	private ConectorBD conectorBD;
	
	public Consultas(){
		conectorBD= ConectorBD.getInstancia();
		try {
			conectorBD.conectar(USR, PASS);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
		}
	}
	
	public ResultSet obtenerSesiones(){
		ResultSet rs= null;
		String sentencia = "SELECT id, fecha FROM sesiones;";
		try {
			rs= conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			
			System.err.println(e.getMessage());
			
		}
		return rs;
	}
	
	//public ResultSet obtenerClientesDeSesion(int idSesion){
	public ResultSet obtenerClientesDeSesion(String idSesion){
		String sentencia = "SELECT nombre, apellido FROM clientes JOIN clientes_por_sesion ON clave_publica=id_cliente WHERE id_sesion="+idSesion+";";
		try {
			return conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return null;
		}
	}
	
	//public ResultSet obtenerTemasDeSesion(int idSesion){
	public ResultSet obtenerTemasDeSesion(String idSesion){
		String sentencia = "SELECT id_tema, tema FROM temas_por_sesion JOIN temas ON id_tema= id WHERE id_sesion ="+idSesion+";";
		try {
			return conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return null;
		}
	}
	
	//public ResultSet obtenerRtdosDeVotacion(int idSesion, int idTema){
	public ResultSet obtenerRtdosDeVotacion(String idSesion, String idTema){
		String sentencia = "SELECT resultado FROM resultados WHERE id_sesion = "+idSesion+" AND id_tema = "+idTema+";";
		try {
			return conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return null;
		}
	}
	/*

	SELECT nombre, apellido, voto, FROM votos_por_tema JOIN clientes ON clave_publica=id_cliente WHERE id_sesion=VAR_ID_SESION AND id_tema=VAR_ID_TEMA;
	*/
	public ResultSet obtenerVotosEnTema(String idSesion, String idTema){
		String sentencia = "SELECT nombre, apellido, voto FROM votos_por_tema JOIN clientes ON clave_publica=id_cliente WHERE id_sesion="+idSesion+" AND id_tema="+idTema+";";
		try {
			return conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return null;
		}
	}
	
	// NECESARIO???????????
	public ResultSet obtenerRol(int idCliente){
		String sentencia = "SELECT rol FROM clientes WHERE id_cliente = "+idCliente+";";
		try {
			return conectorBD.consulta(sentencia);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			return null;
		}
	}
	
}
